home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Developer Toolbox 6.1
/
SGI Developer Toolbox 6.1 - Disc 4.iso
/
src
/
demos
/
GL
/
ideas
/
draw_holder.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-01
|
40KB
|
1,323 lines
/*
* Copyright 1992, 1993, 1994, Silicon Graphics, Inc.
* All Rights Reserved.
*
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
* the contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of Silicon Graphics, Inc.
*
* RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
* and Computer Software clause at DFARS 252.227-7013, and/or in similar or
* successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
* rights reserved under the Copyright Laws of the United States.
*/
#include <gl.h>
#include "objects.h"
float bn[5][3] = {
{-1.0, 0.0, 0.0},
{0.0, 1.0, 0.0},
{1.0, 0.0, 0.0},
{0.0, -1.0, 0.0},
{0.0, 0.0, 1.0},
};
float bp[4][8][3] = {
{
{-14.000000, -14.000000, 0.000000},
{-14.000000, -14.000000, 4.000000},
{-14.000000, 14.000000, 0.000000},
{-14.000000, 14.000000, 4.000000},
{14.000000, 14.000000, 0.000000},
{14.000000, 14.000000, 4.000000},
{14.000000, -14.000000, 0.000000},
{14.000000, -14.000000, 4.000000},
},
{
{-12.000000, -12.000000, 4.000000},
{-12.000000, -12.000000, 8.000000},
{-12.000000, 12.000000, 4.000000},
{-12.000000, 12.000000, 8.000000},
{12.000000, 12.000000, 4.000000},
{12.000000, 12.000000, 8.000000},
{12.000000, -12.000000, 4.000000},
{12.000000, -12.000000, 8.000000},
},
{
{-10.000000, -10.000000, 8.000000},
{-10.000000, -10.000000, 12.000000},
{-10.000000, 10.000000, 8.000000},
{-10.000000, 10.000000, 12.000000},
{10.000000, 10.000000, 8.000000},
{10.000000, 10.000000, 12.000000},
{10.000000, -10.000000, 8.000000},
{10.000000, -10.000000, 12.000000},
},
{
{-8.000000, -8.000000, 12.000000},
{-8.000000, -8.000000, 8.000000},
{-8.000000, 8.000000, 12.000000},
{-8.000000, 8.000000, 8.000000},
{8.000000, 8.000000, 12.000000},
{8.000000, 8.000000, 8.000000},
{8.000000, -8.000000, 12.000000},
{8.000000, -8.000000, 8.000000},
},
};
float tp[12][21][3] = {
{
{10.000000, 0.000000, 1.000000},
{9.510565, -3.090170, 1.000000},
{8.090170, -5.877852, 1.000000},
{5.877852, -8.090170, 1.000000},
{3.090170, -9.510565, 1.000000},
{0.000000, -10.000000, 1.000000},
{-3.090170, -9.510565, 1.000000},
{-5.877852, -8.090170, 1.000000},
{-8.090170, -5.877852, 1.000000},
{-9.510565, -3.090170, 1.000000},
{-10.000000, 0.000000, 1.000000},
{-9.510565, 3.090170, 1.000000},
{-8.090170, 5.877852, 1.000000},
{-5.877852, 8.090170, 1.000000},
{-3.090170, 9.510565, 1.000000},
{0.000000, 10.000000, 1.000000},
{3.090170, 9.510565, 1.000000},
{5.877852, 8.090170, 1.000000},
{8.090170, 5.877852, 1.000000},
{9.510565, 3.090170, 1.000000},
{10.000000, 0.000000, 1.000000},
},
{
{10.540641, 0.000000, 0.841254},
{10.024745, -3.257237, 0.841254},
{8.527557, -6.195633, 0.841254},
{6.195633, -8.527557, 0.841254},
{3.257237, -10.024745, 0.841254},
{0.000000, -10.540641, 0.841254},
{-3.257237, -10.024745, 0.841254},
{-6.195633, -8.527557, 0.841254},
{-8.527557, -6.195633, 0.841254},
{-10.024745, -3.257237, 0.841254},
{-10.540641, 0.000000, 0.841254},
{-10.024745, 3.257237, 0.841254},
{-8.527557, 6.195633, 0.841254},
{-6.195633, 8.527557, 0.841254},
{-3.257237, 10.024745, 0.841254},
{0.000000, 10.540641, 0.841254},
{3.257237, 10.024745, 0.841254},
{6.195633, 8.527557, 0.841254},
{8.527557, 6.195633, 0.841254},
{10.024745, 3.257237, 0.841254},
{10.540641, 0.000000, 0.841254},
},
{
{10.909632, 0.000000, 0.415415},
{10.375676, -3.371262, 0.415415},
{8.826077, -6.412521, 0.415415},
{6.412521, -8.826077, 0.415415},
{3.371262, -10.375676, 0.415415},
{0.000000, -10.909632, 0.415415},
{-3.371262, -10.375676, 0.415415},
{-6.412521, -8.826077, 0.415415},
{-8.826077, -6.412521, 0.415415},
{-10.375676, -3.371262, 0.415415},
{-10.909632, 0.000000, 0.415415},
{-10.375676, 3.371262, 0.415415},
{-8.826077, 6.412521, 0.415415},
{-6.412521, 8.826077, 0.415415},
{-3.371262, 10.375676, 0.415415},
{0.000000, 10.909632, 0.415415},
{3.371262, 10.375676, 0.415415},
{6.412521, 8.826077, 0.415415},
{8.826077, 6.412521, 0.415415},
{10.375676, 3.371262, 0.415415},
{10.909632, 0.000000, 0.415415},
},
{
{10.989821, 0.000000, -0.142315},
{10.451941, -3.396042, -0.142315},
{8.890952, -6.459655, -0.142315},
{6.459655, -8.890952, -0.142315},
{3.396042, -10.451941, -0.142315},
{0.000000, -10.989821, -0.142315},
{-3.396042, -10.451941, -0.142315},
{-6.459655, -8.890952, -0.142315},
{-8.890952, -6.459655, -0.142315},
{-10.451941, -3.396042, -0.142315},
{-10.989821, 0.000000, -0.142315},
{-10.451941, 3.396042, -0.142315},
{-8.890952, 6.459655, -0.142315},
{-6.459655, 8.890952, -0.142315},
{-3.396042, 10.451941, -0.142315},
{0.000000, 10.989821, -0.142315},
{3.396042, 10.451941, -0.142315},
{6.459655, 8.890952, -0.142315},
{8.890952, 6.459655, -0.142315},
{10.451941, 3.396042, -0.142315},
{10.989821, 0.000000, -0.142315},
},
{
{10.755750, 0.000000, -0.654861},
{10.229325, -3.323709, -0.654861},
{8.701584, -6.322071, -0.654861},
{6.322071, -8.701584, -0.654861},
{3.323709, -10.229325, -0.654861},
{0.000000, -10.755750, -0.654861},
{-3.323709, -10.229325, -0.654861},
{-6.322071, -8.701584, -0.654861},
{-8.701584, -6.322071, -0.654861},
{-10.229325, -3.323709, -0.654861},
{-10.755750, 0.000000, -0.654861},
{-10.229325, 3.323709, -0.654861},
{-8.701584, 6.322071, -0.654861},
{-6.322071, 8.701584, -0.654861},
{-3.323709, 10.229325, -0.654861},
{0.000000, 10.755750, -0.654861},
{3.323709, 10.229325, -0.654861},
{6.322071, 8.701584, -0.654861},
{8.701584, 6.322071, -0.654861},
{10.229325, 3.323709, -0.654861},
{10.755750, 0.000000, -0.654861},
},
{
{10.281733, 0.000000, -0.959493},
{9.778509, -3.177230, -0.959493},
{8.318096, -6.043451, -0.959493},
{6.043451, -8.318096, -0.959493},
{3.177230, -9.778509, -0.959493},
{0.000000, -10.281733, -0.959493},
{-3.177230, -9.778509, -0.959493},
{-6.043451, -8.318096, -0.959493},
{-8.318096, -6.043451, -0.959493},
{-9.778509, -3.177230, -0.959493},
{-10.281733, 0.000000, -0.959493},
{-9.778509, 3.177230, -0.959493},
{-8.318096, 6.043451, -0.959493},
{-6.043451, 8.318096, -0.959493},
{-3.177230, 9.778509, -0.959493},
{0.000000, 10.281733, -0.959493},
{3.177230, 9.778509, -0.959493},
{6.043451, 8.318096, -0.959493},
{8.318096, 6.043451, -0.959493},
{9.778509, 3.177230, -0.959493},
{10.281733, 0.000000, -0.959493},
},
{
{9.718267, 0.000000, -0.959493},
{9.242621, -3.003110, -0.959493},
{7.862244, -5.712255, -0.959493},
{5.712255, -7.862244, -0.959493},
{3.003110, -9.242621, -0.959493},
{0.000000, -9.718267, -0.959493},
{-3.003110, -9.242621, -0.959493},
{-5.712255, -7.862244, -0.959493},
{-7.862244, -5.712255, -0.959493},
{-9.242621, -3.003110, -0.959493},
{-9.718267, 0.000000, -0.959493},
{-9.242621, 3.003110, -0.959493},
{-7.862244, 5.712255, -0.959493},
{-5.712255, 7.862244, -0.959493},
{-3.003110, 9.242621, -0.959493},
{0.000000, 9.718267, -0.959493},
{3.003110, 9.242621, -0.959493},
{5.712255, 7.862244, -0.959493},
{7.862244, 5.712255, -0.959493},
{9.242621, 3.003110, -0.959493},
{9.718267, 0.000000, -0.959493},
},
{
{9.244250, 0.000000, -0.654861},
{8.791805, -2.856631, -0.654861},
{7.478756, -5.433634, -0.654861},
{5.433634, -7.478756, -0.654861},
{2.856631, -8.791805, -0.654861},
{0.000000, -9.244250, -0.654861},
{-2.856631, -8.791805, -0.654861},
{-5.433634, -7.478756, -0.654861},
{-7.478756, -5.433634, -0.654861},
{-8.791805, -2.856631, -0.654861},
{-9.244250, 0.000000, -0.654861},
{-8.791805, 2.856631, -0.654861},
{-7.478756, 5.433634, -0.654861},
{-5.433634, 7.478756, -0.654861},
{-2.856631, 8.791805, -0.654861},
{0.000000, 9.244250, -0.654861},
{2.856631, 8.791805, -0.654861},
{5.433634, 7.478756, -0.654861},
{7.478756, 5.433634, -0.654861},
{8.791805, 2.856631, -0.654861},
{9.244250, 0.000000, -0.654861},
},
{
{9.010179, 0.000000, -0.142315},
{8.569189, -2.784298, -0.142315},
{7.289388, -5.296050, -0.142315},
{5.296050, -7.289388, -0.142315},
{2.784298, -8.569189, -0.142315},
{0.000000, -9.010179, -0.142315},
{-2.784298, -8.569189, -0.142315},
{-5.296050, -7.289388, -0.142315},
{-7.289388, -5.296050, -0.142315},
{-8.569189, -2.784298, -0.142315},
{-9.010179, 0.000000, -0.142315},
{-8.569189, 2.784298, -0.142315},
{-7.289388, 5.296050, -0.142315},
{-5.296050, 7.289388, -0.142315},
{-2.784298, 8.569189, -0.142315},
{0.000000, 9.010179, -0.142315},
{2.784298, 8.569189, -0.142315},
{5.296050, 7.289388, -0.142315},
{7.289388, 5.296050, -0.142315},
{8.569189, 2.784298, -0.142315},
{9.010179, 0.000000, -0.142315},
},
{
{9.090367, 0.000000, 0.415414},
{8.645453, -2.809078, 0.415414},
{7.354262, -5.343184, 0.415414},
{5.343184, -7.354262, 0.415414},
{2.809078, -8.645453, 0.415414},
{0.000000, -9.090367, 0.415414},
{-2.809078, -8.645453, 0.415414},
{-5.343184, -7.354262, 0.415414},
{-7.354262, -5.343184, 0.415414},
{-8.645453, -2.809078, 0.415414},
{-9.090367, 0.000000, 0.415414},
{-8.645453, 2.809078, 0.415414},
{-7.354262, 5.343184, 0.415414},
{-5.343184, 7.354262, 0.415414},
{-2.809078, 8.645453, 0.415414},
{0.000000, 9.090367, 0.415414},
{2.809078, 8.645453, 0.415414},
{5.343184, 7.354262, 0.415414},
{7.354262, 5.343184, 0.415414},
{8.645453, 2.809078, 0.415414},
{9.090367, 0.000000, 0.415414},
},
{
{9.459358, 0.000000, 0.841253},
{8.996385, -2.923103, 0.841253},
{7.652781, -5.560071, 0.841253},
{5.560071, -7.652781, 0.841253},
{2.923103, -8.996385, 0.841253},
{0.000000, -9.459358, 0.841253},
{-2.923103, -8.996385, 0.841253},
{-5.560071, -7.652781, 0.841253},
{-7.652781, -5.560071, 0.841253},
{-8.996385, -2.923103, 0.841253},
{-9.459358, 0.000000, 0.841253},
{-8.996385, 2.923103, 0.841253},
{-7.652781, 5.560071, 0.841253},
{-5.560071, 7.652781, 0.841253},
{-2.923103, 8.996385, 0.841253},
{0.000000, 9.459358, 0.841253},
{2.923103, 8.996385, 0.841253},
{5.560071, 7.652781, 0.841253},
{7.652781, 5.560071, 0.841253},
{8.996385, 2.923103, 0.841253},
{9.459358, 0.000000, 0.841253},
},
{
{9.999999, 0.000000, 1.000000},
{9.510564, -3.090170, 1.000000},
{8.090169, -5.877852, 1.000000},
{5.877852, -8.090169, 1.000000},
{3.090170, -9.510564, 1.000000},
{0.000000, -9.999999, 1.000000},
{-3.090170, -9.510564, 1.000000},
{-5.877852, -8.090169, 1.000000},
{-8.090169, -5.877852, 1.000000},
{-9.510564, -3.090170, 1.000000},
{-9.999999, 0.000000, 1.000000},
{-9.510564, 3.090170, 1.000000},
{-8.090169, 5.877852, 1.000000},
{-5.877852, 8.090169, 1.000000},
{-3.090170, 9.510564, 1.000000},
{0.000000, 9.999999, 1.000000},
{3.090170, 9.510564, 1.000000},
{5.877852, 8.090169, 1.000000},
{8.090169, 5.877852, 1.000000},
{9.510564, 3.090170, 1.000000},
{9.999999, 0.000000, 1.000000},
},
};
float tn[12][21][3] = {
{
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.000000, 1.000000},
},
{
{0.540641, 0.000000, 0.841254},
{0.514180, -0.167067, 0.841254},
{0.437388, -0.317781, 0.841254},
{0.317781, -0.437388, 0.841254},
{0.167067, -0.514180, 0.841254},
{0.000000, -0.540641, 0.841254},
{-0.167067, -0.514180, 0.841254},
{-0.317781, -0.437388, 0.841254},
{-0.437388, -0.317781, 0.841254},
{-0.514180, -0.167067, 0.841254},
{-0.540641, 0.000000, 0.841254},
{-0.514180, 0.167067, 0.841254},
{-0.437388, 0.317781, 0.841254},
{-0.317781, 0.437388, 0.841254},
{-0.167067, 0.514180, 0.841254},
{0.000000, 0.540641, 0.841254},
{0.167067, 0.514180, 0.841254},
{0.317781, 0.437388, 0.841254},
{0.437388, 0.317781, 0.841254},
{0.514180, 0.167067, 0.841254},
{0.540641, 0.000000, 0.841254},
},
{
{0.909632, 0.000000, 0.415415},
{0.865111, -0.281092, 0.415415},
{0.735908, -0.534668, 0.415415},
{0.534668, -0.735908, 0.415415},
{0.281092, -0.865111, 0.415415},
{0.000000, -0.909632, 0.415415},
{-0.281092, -0.865111, 0.415415},
{-0.534668, -0.735908, 0.415415},
{-0.735908, -0.534668, 0.415415},
{-0.865111, -0.281092, 0.415415},
{-0.909632, 0.000000, 0.415415},
{-0.865111, 0.281092, 0.415415},
{-0.735908, 0.534668, 0.415415},
{-0.534668, 0.735908, 0.415415},
{-0.281092, 0.865111, 0.415415},
{0.000000, 0.909632, 0.415415},
{0.281092, 0.865111, 0.415415},
{0.534668, 0.735908, 0.415415},
{0.735908, 0.534668, 0.415415},
{0.865111, 0.281092, 0.415415},
{0.909632, 0.000000, 0.415415},
},
{
{0.989821, 0.000000, -0.142315},
{0.941376, -0.305872, -0.142315},
{0.800782, -0.581802, -0.142315},
{0.581802, -0.800782, -0.142315},
{0.305872, -0.941376, -0.142315},
{0.000000, -0.989821, -0.142315},
{-0.305872, -0.941376, -0.142315},
{-0.581802, -0.800782, -0.142315},
{-0.800782, -0.581802, -0.142315},
{-0.941376, -0.305872, -0.142315},
{-0.989821, 0.000000, -0.142315},
{-0.941376, 0.305872, -0.142315},
{-0.800782, 0.581802, -0.142315},
{-0.581802, 0.800782, -0.142315},
{-0.305872, 0.941376, -0.142315},
{0.000000, 0.989821, -0.142315},
{0.305872, 0.941376, -0.142315},
{0.581802, 0.800782, -0.142315},
{0.800782, 0.581802, -0.142315},
{0.941376, 0.305872, -0.142315},
{0.989821, 0.000000, -0.142315},
},
{
{0.755750, 0.000000, -0.654861},
{0.718761, -0.233539, -0.654861},
{0.611414, -0.444218, -0.654861},
{0.444218, -0.611414, -0.654861},
{0.233539, -0.718761, -0.654861},
{0.000000, -0.755750, -0.654861},
{-0.233539, -0.718761, -0.654861},
{-0.444218, -0.611414, -0.654861},
{-0.611414, -0.444218, -0.654861},
{-0.718761, -0.233539, -0.654861},
{-0.755750, 0.000000, -0.654861},
{-0.718761, 0.233539, -0.654861},
{-0.611414, 0.444218, -0.654861},
{-0.444218, 0.611414, -0.654861},
{-0.233539, 0.718761, -0.654861},
{0.000000, 0.755750, -0.654861},
{0.233539, 0.718761, -0.654861},
{0.444218, 0.611414, -0.654861},
{0.611414, 0.444218, -0.654861},
{0.718761, 0.233539, -0.654861},
{0.755750, 0.000000, -0.654861},
},
{
{0.281733, 0.000000, -0.959493},
{0.267944, -0.087060, -0.959493},
{0.227927, -0.165598, -0.959493},
{0.165598, -0.227927, -0.959493},
{0.087060, -0.267944, -0.959493},
{0.000000, -0.281733, -0.959493},
{-0.087060, -0.267944, -0.959493},
{-0.165598, -0.227927, -0.959493},
{-0.227927, -0.165598, -0.959493},
{-0.267944, -0.087060, -0.959493},
{-0.281733, 0.000000, -0.959493},
{-0.267944, 0.087060, -0.959493},
{-0.227927, 0.165598, -0.959493},
{-0.165598, 0.227927, -0.959493},
{-0.087060, 0.267944, -0.959493},
{0.000000, 0.281733, -0.959493},
{0.087060, 0.267944, -0.959493},
{0.165598, 0.227927, -0.959493},
{0.227927, 0.165598, -0.959493},
{0.267944, 0.087060, -0.959493},
{0.281733, 0.000000, -0.959493},
},
{
{-0.281732, 0.000000, -0.959493},
{-0.267943, 0.087060, -0.959493},
{-0.227926, 0.165598, -0.959493},
{-0.165598, 0.227926, -0.959493},
{-0.087060, 0.267943, -0.959493},
{0.000000, 0.281732, -0.959493},
{0.087060, 0.267943, -0.959493},
{0.165598, 0.227926, -0.959493},
{0.227926, 0.165598, -0.959493},
{0.267943, 0.087060, -0.959493},
{0.281732, 0.000000, -0.959493},
{0.267943, -0.087060, -0.959493},
{0.227926, -0.165598, -0.959493},
{0.165598, -0.227926, -0.959493},
{0.087060, -0.267943, -0.959493},
{0.000000, -0.281732, -0.959493},
{-0.087060, -0.267943, -0.959493},
{-0.165598, -0.227926, -0.959493},
{-0.227926, -0.165598, -0.959493},
{-0.267943, -0.087060, -0.959493},
{-0.281732, 0.000000, -0.959493},
},
{
{-0.755749, 0.000000, -0.654861},
{-0.718760, 0.233539, -0.654861},
{-0.611414, 0.444218, -0.654861},
{-0.444218, 0.611414, -0.654861},
{-0.233539, 0.718760, -0.654861},
{0.000000, 0.755749, -0.654861},
{0.233539, 0.718760, -0.654861},
{0.444218, 0.611414, -0.654861},
{0.611414, 0.444218, -0.654861},
{0.718760, 0.233539, -0.654861},
{0.755749, 0.000000, -0.654861},
{0.718760, -0.233539, -0.654861},
{0.611414, -0.444218, -0.654861},
{0.444218, -0.611414, -0.654861},
{0.233539, -0.718760, -0.654861},
{0.000000, -0.755749, -0.654861},
{-0.233539, -0.718760, -0.654861},
{-0.444218, -0.611414, -0.654861},
{-0.611414, -0.444218, -0.654861},
{-0.718760, -0.233539, -0.654861},
{-0.755749, 0.000000, -0.654861},
},
{
{-0.989821, 0.000000, -0.142315},
{-0.941376, 0.305872, -0.142315},
{-0.800782, 0.581802, -0.142315},
{-0.581802, 0.800782, -0.142315},
{-0.305872, 0.941376, -0.142315},
{0.000000, 0.989821, -0.142315},
{0.305872, 0.941376, -0.142315},
{0.581802, 0.800782, -0.142315},
{0.800782, 0.581802, -0.142315},
{0.941376, 0.305872, -0.142315},
{0.989821, 0.000000, -0.142315},
{0.941376, -0.305872, -0.142315},
{0.800782, -0.581802, -0.142315},
{0.581802, -0.800782, -0.142315},
{0.305872, -0.941376, -0.142315},
{0.000000, -0.989821, -0.142315},
{-0.305872, -0.941376, -0.142315},
{-0.581802, -0.800782, -0.142315},
{-0.800782, -0.581802, -0.142315},
{-0.941376, -0.305872, -0.142315},
{-0.989821, 0.000000, -0.142315},
},
{
{-0.909632, 0.000000, 0.415414},
{-0.865112, 0.281092, 0.415414},
{-0.735908, 0.534668, 0.415414},
{-0.534668, 0.735908, 0.415414},
{-0.281092, 0.865112, 0.415414},
{0.000000, 0.909632, 0.415414},
{0.281092, 0.865112, 0.415414},
{0.534668, 0.735908, 0.415414},
{0.735908, 0.534668, 0.415414},
{0.865112, 0.281092, 0.415414},
{0.909632, 0.000000, 0.415414},
{0.865112, -0.281092, 0.415414},
{0.735908, -0.534668, 0.415414},
{0.534668, -0.735908, 0.415414},
{0.281092, -0.865112, 0.415414},
{0.000000, -0.909632, 0.415414},
{-0.281092, -0.865112, 0.415414},
{-0.534668, -0.735908, 0.415414},
{-0.735908, -0.534668, 0.415414},
{-0.865112, -0.281092, 0.415414},
{-0.909632, 0.000000, 0.415414},
},
{
{-0.540642, 0.000000, 0.841253},
{-0.514181, 0.167067, 0.841253},
{-0.437388, 0.317781, 0.841253},
{-0.317781, 0.437388, 0.841253},
{-0.167067, 0.514181, 0.841253},
{0.000000, 0.540642, 0.841253},
{0.167067, 0.514181, 0.841253},
{0.317781, 0.437388, 0.841253},
{0.437388, 0.317781, 0.841253},
{0.514181, 0.167067, 0.841253},
{0.540642, 0.000000, 0.841253},
{0.514181, -0.167067, 0.841253},
{0.437388, -0.317781, 0.841253},
{0.317781, -0.437388, 0.841253},
{0.167067, -0.514181, 0.841253},
{0.000000, -0.540642, 0.841253},
{-0.167067, -0.514181, 0.841253},
{-0.317781, -0.437388, 0.841253},
{-0.437388, -0.317781, 0.841253},
{-0.514181, -0.167067, 0.841253},
{-0.540642, 0.000000, 0.841253},
},
{
{-0.000001, 0.000000, 1.000000},
{-0.000001, 0.000000, 1.000000},
{-0.000001, 0.000001, 1.000000},
{-0.000001, 0.000001, 1.000000},
{0.000000, 0.000001, 1.000000},
{0.000000, 0.000001, 1.000000},
{0.000000, 0.000001, 1.000000},
{0.000001, 0.000001, 1.000000},
{0.000001, 0.000001, 1.000000},
{0.000001, 0.000000, 1.000000},
{0.000001, 0.000000, 1.000000},
{0.000001, 0.000000, 1.000000},
{0.000001, -0.000001, 1.000000},
{0.000001, -0.000001, 1.000000},
{0.000000, -0.000001, 1.000000},
{0.000000, -0.000001, 1.000000},
{0.000000, -0.000001, 1.000000},
{-0.000001, -0.000001, 1.000000},
{-0.000001, -0.000001, 1.000000},
{-0.000001, 0.000000, 1.000000},
{-0.000001, 0.000000, 1.000000},
},
};
draw_base() {
lmbind(MATERIAL, MAT_HOLDER_BASE);
bgnpolygon();
n3f(bn[0]);
v3f(bp[0][0]);
v3f(bp[0][1]);
v3f(bp[0][3]);
v3f(bp[0][2]);
endpolygon();
bgnpolygon();
n3f(bn[1]);
v3f(bp[0][2]);
v3f(bp[0][3]);
v3f(bp[0][5]);
v3f(bp[0][4]);
endpolygon();
bgnpolygon();
n3f(bn[2]);
v3f(bp[0][4]);
v3f(bp[0][5]);
v3f(bp[0][7]);
v3f(bp[0][6]);
endpolygon();
bgnpolygon();
n3f(bn[3]);
v3f(bp[0][6]);
v3f(bp[0][7]);
v3f(bp[0][1]);
v3f(bp[0][0]);
endpolygon();
bgntmesh();
n3f(bn[4]);
v3f(bp[0][1]);
v3f(bp[1][0]);
v3f(bp[0][3]);
v3f(bp[1][2]);
v3f(bp[0][5]);
v3f(bp[1][4]);
v3f(bp[0][7]);
v3f(bp[1][6]);
v3f(bp[0][1]);
v3f(bp[1][0]);
endtmesh();
bgnpolygon();
n3f(bn[0]);
v3f(bp[1][0]);
v3f(bp[1][1]);
v3f(bp[1][3]);
v3f(bp[1][2]);
endpolygon();
bgnpolygon();
n3f(bn[1]);
v3f(bp[1][2]);
v3f(bp[1][3]);
v3f(bp[1][5]);
v3f(bp[1][4]);
endpolygon();
bgnpolygon();
n3f(bn[2]);
v3f(bp[1][4]);
v3f(bp[1][5]);
v3f(bp[1][7]);
v3f(bp[1][6]);
endpolygon();
bgnpolygon();
n3f(bn[3]);
v3f(bp[1][6]);
v3f(bp[1][7]);
v3f(bp[1][1]);
v3f(bp[1][0]);
endpolygon();
bgntmesh();
n3f(bn[4]);
v3f(bp[1][1]);
v3f(bp[2][0]);
v3f(bp[1][3]);
v3f(bp[2][2]);
v3f(bp[1][5]);
v3f(bp[2][4]);
v3f(bp[1][7]);
v3f(bp[2][6]);
v3f(bp[1][1]);
v3f(bp[2][0]);
endtmesh();
bgnpolygon();
n3f(bn[0]);
v3f(bp[2][0]);
v3f(bp[2][1]);
v3f(bp[2][3]);
v3f(bp[2][2]);
endpolygon();
bgnpolygon();
n3f(bn[1]);
v3f(bp[2][2]);
v3f(bp[2][3]);
v3f(bp[2][5]);
v3f(bp[2][4]);
endpolygon();
bgnpolygon();
n3f(bn[2]);
v3f(bp[2][4]);
v3f(bp[2][5]);
v3f(bp[2][7]);
v3f(bp[2][6]);
endpolygon();
bgnpolygon();
n3f(bn[3]);
v3f(bp[2][6]);
v3f(bp[2][7]);
v3f(bp[2][1]);
v3f(bp[2][0]);
endpolygon();
bgntmesh();
n3f(bn[4]);
v3f(bp[2][1]);
v3f(bp[3][0]);
v3f(bp[2][3]);
v3f(bp[3][2]);
v3f(bp[2][5]);
v3f(bp[3][4]);
v3f(bp[2][7]);
v3f(bp[3][6]);
v3f(bp[2][1]);
v3f(bp[3][0]);
endtmesh();
bgnpolygon();
n3f(bn[2]);
v3f(bp[3][0]);
v3f(bp[3][1]);
v3f(bp[3][3]);
v3f(bp[3][2]);
endpolygon();
bgnpolygon();
n3f(bn[3]);
v3f(bp[3][2]);
v3f(bp[3][3]);
v3f(bp[3][5]);
v3f(bp[3][4]);
endpolygon();
bgnpolygon();
n3f(bn[0]);
v3f(bp[3][4]);
v3f(bp[3][5]);
v3f(bp[3][7]);
v3f(bp[3][6]);
endpolygon();
bgnpolygon();
n3f(bn[1]);
v3f(bp[3][6]);
v3f(bp[3][7]);
v3f(bp[3][1]);
v3f(bp[3][0]);
endpolygon();
bgnpolygon();
n3f(bn[4]);
v3f(bp[3][1]);
v3f(bp[3][3]);
v3f(bp[3][5]);
v3f(bp[3][7]);
endpolygon();
}
draw_torus() {
lmbind(MATERIAL, MAT_HOLDER_RINGS);
bgntmesh();
n3f(tn[0][0]); v3f(tp[0][0]);
n3f(tn[1][0]); v3f(tp[1][0]);
n3f(tn[0][1]); v3f(tp[0][1]);
n3f(tn[1][1]); v3f(tp[1][1]);
n3f(tn[0][2]); v3f(tp[0][2]);
n3f(tn[1][2]); v3f(tp[1][2]);
n3f(tn[0][3]); v3f(tp[0][3]);
n3f(tn[1][3]); v3f(tp[1][3]);
n3f(tn[0][4]); v3f(tp[0][4]);
n3f(tn[1][4]); v3f(tp[1][4]);
n3f(tn[0][5]); v3f(tp[0][5]);
n3f(tn[1][5]); v3f(tp[1][5]);
n3f(tn[0][6]); v3f(tp[0][6]);
n3f(tn[1][6]); v3f(tp[1][6]);
n3f(tn[0][7]); v3f(tp[0][7]);
n3f(tn[1][7]); v3f(tp[1][7]);
n3f(tn[0][8]); v3f(tp[0][8]);
n3f(tn[1][8]); v3f(tp[1][8]);
n3f(tn[0][9]); v3f(tp[0][9]);
n3f(tn[1][9]); v3f(tp[1][9]);
n3f(tn[0][10]); v3f(tp[0][10]);
n3f(tn[1][10]); v3f(tp[1][10]);
n3f(tn[0][11]); v3f(tp[0][11]);
n3f(tn[1][11]); v3f(tp[1][11]);
n3f(tn[0][12]); v3f(tp[0][12]);
n3f(tn[1][12]); v3f(tp[1][12]);
n3f(tn[0][13]); v3f(tp[0][13]);
n3f(tn[1][13]); v3f(tp[1][13]);
n3f(tn[0][14]); v3f(tp[0][14]);
n3f(tn[1][14]); v3f(tp[1][14]);
n3f(tn[0][15]); v3f(tp[0][15]);
n3f(tn[1][15]); v3f(tp[1][15]);
n3f(tn[0][16]); v3f(tp[0][16]);
n3f(tn[1][16]); v3f(tp[1][16]);
n3f(tn[0][17]); v3f(tp[0][17]);
n3f(tn[1][17]); v3f(tp[1][17]);
n3f(tn[0][18]); v3f(tp[0][18]);
n3f(tn[1][18]); v3f(tp[1][18]);
n3f(tn[0][19]); v3f(tp[0][19]);
n3f(tn[1][19]); v3f(tp[1][19]);
n3f(tn[0][20]); v3f(tp[0][20]);
n3f(tn[1][20]); v3f(tp[1][20]);
endtmesh();
bgntmesh();
n3f(tn[1][0]); v3f(tp[1][0]);
n3f(tn[2][0]); v3f(tp[2][0]);
n3f(tn[1][1]); v3f(tp[1][1]);
n3f(tn[2][1]); v3f(tp[2][1]);
n3f(tn[1][2]); v3f(tp[1][2]);
n3f(tn[2][2]); v3f(tp[2][2]);
n3f(tn[1][3]); v3f(tp[1][3]);
n3f(tn[2][3]); v3f(tp[2][3]);
n3f(tn[1][4]); v3f(tp[1][4]);
n3f(tn[2][4]); v3f(tp[2][4]);
n3f(tn[1][5]); v3f(tp[1][5]);
n3f(tn[2][5]); v3f(tp[2][5]);
n3f(tn[1][6]); v3f(tp[1][6]);
n3f(tn[2][6]); v3f(tp[2][6]);
n3f(tn[1][7]); v3f(tp[1][7]);
n3f(tn[2][7]); v3f(tp[2][7]);
n3f(tn[1][8]); v3f(tp[1][8]);
n3f(tn[2][8]); v3f(tp[2][8]);
n3f(tn[1][9]); v3f(tp[1][9]);
n3f(tn[2][9]); v3f(tp[2][9]);
n3f(tn[1][10]); v3f(tp[1][10]);
n3f(tn[2][10]); v3f(tp[2][10]);
n3f(tn[1][11]); v3f(tp[1][11]);
n3f(tn[2][11]); v3f(tp[2][11]);
n3f(tn[1][12]); v3f(tp[1][12]);
n3f(tn[2][12]); v3f(tp[2][12]);
n3f(tn[1][13]); v3f(tp[1][13]);
n3f(tn[2][13]); v3f(tp[2][13]);
n3f(tn[1][14]); v3f(tp[1][14]);
n3f(tn[2][14]); v3f(tp[2][14]);
n3f(tn[1][15]); v3f(tp[1][15]);
n3f(tn[2][15]); v3f(tp[2][15]);
n3f(tn[1][16]); v3f(tp[1][16]);
n3f(tn[2][16]); v3f(tp[2][16]);
n3f(tn[1][17]); v3f(tp[1][17]);
n3f(tn[2][17]); v3f(tp[2][17]);
n3f(tn[1][18]); v3f(tp[1][18]);
n3f(tn[2][18]); v3f(tp[2][18]);
n3f(tn[1][19]); v3f(tp[1][19]);
n3f(tn[2][19]); v3f(tp[2][19]);
n3f(tn[1][20]); v3f(tp[1][20]);
n3f(tn[2][20]); v3f(tp[2][20]);
endtmesh();
bgntmesh();
n3f(tn[2][0]); v3f(tp[2][0]);
n3f(tn[3][0]); v3f(tp[3][0]);
n3f(tn[2][1]); v3f(tp[2][1]);
n3f(tn[3][1]); v3f(tp[3][1]);
n3f(tn[2][2]); v3f(tp[2][2]);
n3f(tn[3][2]); v3f(tp[3][2]);
n3f(tn[2][3]); v3f(tp[2][3]);
n3f(tn[3][3]); v3f(tp[3][3]);
n3f(tn[2][4]); v3f(tp[2][4]);
n3f(tn[3][4]); v3f(tp[3][4]);
n3f(tn[2][5]); v3f(tp[2][5]);
n3f(tn[3][5]); v3f(tp[3][5]);
n3f(tn[2][6]); v3f(tp[2][6]);
n3f(tn[3][6]); v3f(tp[3][6]);
n3f(tn[2][7]); v3f(tp[2][7]);
n3f(tn[3][7]); v3f(tp[3][7]);
n3f(tn[2][8]); v3f(tp[2][8]);
n3f(tn[3][8]); v3f(tp[3][8]);
n3f(tn[2][9]); v3f(tp[2][9]);
n3f(tn[3][9]); v3f(tp[3][9]);
n3f(tn[2][10]); v3f(tp[2][10]);
n3f(tn[3][10]); v3f(tp[3][10]);
n3f(tn[2][11]); v3f(tp[2][11]);
n3f(tn[3][11]); v3f(tp[3][11]);
n3f(tn[2][12]); v3f(tp[2][12]);
n3f(tn[3][12]); v3f(tp[3][12]);
n3f(tn[2][13]); v3f(tp[2][13]);
n3f(tn[3][13]); v3f(tp[3][13]);
n3f(tn[2][14]); v3f(tp[2][14]);
n3f(tn[3][14]); v3f(tp[3][14]);
n3f(tn[2][15]); v3f(tp[2][15]);
n3f(tn[3][15]); v3f(tp[3][15]);
n3f(tn[2][16]); v3f(tp[2][16]);
n3f(tn[3][16]); v3f(tp[3][16]);
n3f(tn[2][17]); v3f(tp[2][17]);
n3f(tn[3][17]); v3f(tp[3][17]);
n3f(tn[2][18]); v3f(tp[2][18]);
n3f(tn[3][18]); v3f(tp[3][18]);
n3f(tn[2][19]); v3f(tp[2][19]);
n3f(tn[3][19]); v3f(tp[3][19]);
n3f(tn[2][20]); v3f(tp[2][20]);
n3f(tn[3][20]); v3f(tp[3][20]);
endtmesh();
bgntmesh();
n3f(tn[3][0]); v3f(tp[3][0]);
n3f(tn[4][0]); v3f(tp[4][0]);
n3f(tn[3][1]); v3f(tp[3][1]);
n3f(tn[4][1]); v3f(tp[4][1]);
n3f(tn[3][2]); v3f(tp[3][2]);
n3f(tn[4][2]); v3f(tp[4][2]);
n3f(tn[3][3]); v3f(tp[3][3]);
n3f(tn[4][3]); v3f(tp[4][3]);
n3f(tn[3][4]); v3f(tp[3][4]);
n3f(tn[4][4]); v3f(tp[4][4]);
n3f(tn[3][5]); v3f(tp[3][5]);
n3f(tn[4][5]); v3f(tp[4][5]);
n3f(tn[3][6]); v3f(tp[3][6]);
n3f(tn[4][6]); v3f(tp[4][6]);
n3f(tn[3][7]); v3f(tp[3][7]);
n3f(tn[4][7]); v3f(tp[4][7]);
n3f(tn[3][8]); v3f(tp[3][8]);
n3f(tn[4][8]); v3f(tp[4][8]);
n3f(tn[3][9]); v3f(tp[3][9]);
n3f(tn[4][9]); v3f(tp[4][9]);
n3f(tn[3][10]); v3f(tp[3][10]);
n3f(tn[4][10]); v3f(tp[4][10]);
n3f(tn[3][11]); v3f(tp[3][11]);
n3f(tn[4][11]); v3f(tp[4][11]);
n3f(tn[3][12]); v3f(tp[3][12]);
n3f(tn[4][12]); v3f(tp[4][12]);
n3f(tn[3][13]); v3f(tp[3][13]);
n3f(tn[4][13]); v3f(tp[4][13]);
n3f(tn[3][14]); v3f(tp[3][14]);
n3f(tn[4][14]); v3f(tp[4][14]);
n3f(tn[3][15]); v3f(tp[3][15]);
n3f(tn[4][15]); v3f(tp[4][15]);
n3f(tn[3][16]); v3f(tp[3][16]);
n3f(tn[4][16]); v3f(tp[4][16]);
n3f(tn[3][17]); v3f(tp[3][17]);
n3f(tn[4][17]); v3f(tp[4][17]);
n3f(tn[3][18]); v3f(tp[3][18]);
n3f(tn[4][18]); v3f(tp[4][18]);
n3f(tn[3][19]); v3f(tp[3][19]);
n3f(tn[4][19]); v3f(tp[4][19]);
n3f(tn[3][20]); v3f(tp[3][20]);
n3f(tn[4][20]); v3f(tp[4][20]);
endtmesh();
bgntmesh();
n3f(tn[4][0]); v3f(tp[4][0]);
n3f(tn[5][0]); v3f(tp[5][0]);
n3f(tn[4][1]); v3f(tp[4][1]);
n3f(tn[5][1]); v3f(tp[5][1]);
n3f(tn[4][2]); v3f(tp[4][2]);
n3f(tn[5][2]); v3f(tp[5][2]);
n3f(tn[4][3]); v3f(tp[4][3]);
n3f(tn[5][3]); v3f(tp[5][3]);
n3f(tn[4][4]); v3f(tp[4][4]);
n3f(tn[5][4]); v3f(tp[5][4]);
n3f(tn[4][5]); v3f(tp[4][5]);
n3f(tn[5][5]); v3f(tp[5][5]);
n3f(tn[4][6]); v3f(tp[4][6]);
n3f(tn[5][6]); v3f(tp[5][6]);
n3f(tn[4][7]); v3f(tp[4][7]);
n3f(tn[5][7]); v3f(tp[5][7]);
n3f(tn[4][8]); v3f(tp[4][8]);
n3f(tn[5][8]); v3f(tp[5][8]);
n3f(tn[4][9]); v3f(tp[4][9]);
n3f(tn[5][9]); v3f(tp[5][9]);
n3f(tn[4][10]); v3f(tp[4][10]);
n3f(tn[5][10]); v3f(tp[5][10]);
n3f(tn[4][11]); v3f(tp[4][11]);
n3f(tn[5][11]); v3f(tp[5][11]);
n3f(tn[4][12]); v3f(tp[4][12]);
n3f(tn[5][12]); v3f(tp[5][12]);
n3f(tn[4][13]); v3f(tp[4][13]);
n3f(tn[5][13]); v3f(tp[5][13]);
n3f(tn[4][14]); v3f(tp[4][14]);
n3f(tn[5][14]); v3f(tp[5][14]);
n3f(tn[4][15]); v3f(tp[4][15]);
n3f(tn[5][15]); v3f(tp[5][15]);
n3f(tn[4][16]); v3f(tp[4][16]);
n3f(tn[5][16]); v3f(tp[5][16]);
n3f(tn[4][17]); v3f(tp[4][17]);
n3f(tn[5][17]); v3f(tp[5][17]);
n3f(tn[4][18]); v3f(tp[4][18]);
n3f(tn[5][18]); v3f(tp[5][18]);
n3f(tn[4][19]); v3f(tp[4][19]);
n3f(tn[5][19]); v3f(tp[5][19]);
n3f(tn[4][20]); v3f(tp[4][20]);
n3f(tn[5][20]); v3f(tp[5][20]);
endtmesh();
bgntmesh();
n3f(tn[5][0]); v3f(tp[5][0]);
n3f(tn[6][0]); v3f(tp[6][0]);
n3f(tn[5][1]); v3f(tp[5][1]);
n3f(tn[6][1]); v3f(tp[6][1]);
n3f(tn[5][2]); v3f(tp[5][2]);
n3f(tn[6][2]); v3f(tp[6][2]);
n3f(tn[5][3]); v3f(tp[5][3]);
n3f(tn[6][3]); v3f(tp[6][3]);
n3f(tn[5][4]); v3f(tp[5][4]);
n3f(tn[6][4]); v3f(tp[6][4]);
n3f(tn[5][5]); v3f(tp[5][5]);
n3f(tn[6][5]); v3f(tp[6][5]);
n3f(tn[5][6]); v3f(tp[5][6]);
n3f(tn[6][6]); v3f(tp[6][6]);
n3f(tn[5][7]); v3f(tp[5][7]);
n3f(tn[6][7]); v3f(tp[6][7]);
n3f(tn[5][8]); v3f(tp[5][8]);
n3f(tn[6][8]); v3f(tp[6][8]);
n3f(tn[5][9]); v3f(tp[5][9]);
n3f(tn[6][9]); v3f(tp[6][9]);
n3f(tn[5][10]); v3f(tp[5][10]);
n3f(tn[6][10]); v3f(tp[6][10]);
n3f(tn[5][11]); v3f(tp[5][11]);
n3f(tn[6][11]); v3f(tp[6][11]);
n3f(tn[5][12]); v3f(tp[5][12]);
n3f(tn[6][12]); v3f(tp[6][12]);
n3f(tn[5][13]); v3f(tp[5][13]);
n3f(tn[6][13]); v3f(tp[6][13]);
n3f(tn[5][14]); v3f(tp[5][14]);
n3f(tn[6][14]); v3f(tp[6][14]);
n3f(tn[5][15]); v3f(tp[5][15]);
n3f(tn[6][15]); v3f(tp[6][15]);
n3f(tn[5][16]); v3f(tp[5][16]);
n3f(tn[6][16]); v3f(tp[6][16]);
n3f(tn[5][17]); v3f(tp[5][17]);
n3f(tn[6][17]); v3f(tp[6][17]);
n3f(tn[5][18]); v3f(tp[5][18]);
n3f(tn[6][18]); v3f(tp[6][18]);
n3f(tn[5][19]); v3f(tp[5][19]);
n3f(tn[6][19]); v3f(tp[6][19]);
n3f(tn[5][20]); v3f(tp[5][20]);
n3f(tn[6][20]); v3f(tp[6][20]);
endtmesh();
bgntmesh();
n3f(tn[6][0]); v3f(tp[6][0]);
n3f(tn[7][0]); v3f(tp[7][0]);
n3f(tn[6][1]); v3f(tp[6][1]);
n3f(tn[7][1]); v3f(tp[7][1]);
n3f(tn[6][2]); v3f(tp[6][2]);
n3f(tn[7][2]); v3f(tp[7][2]);
n3f(tn[6][3]); v3f(tp[6][3]);
n3f(tn[7][3]); v3f(tp[7][3]);
n3f(tn[6][4]); v3f(tp[6][4]);
n3f(tn[7][4]); v3f(tp[7][4]);
n3f(tn[6][5]); v3f(tp[6][5]);
n3f(tn[7][5]); v3f(tp[7][5]);
n3f(tn[6][6]); v3f(tp[6][6]);
n3f(tn[7][6]); v3f(tp[7][6]);
n3f(tn[6][7]); v3f(tp[6][7]);
n3f(tn[7][7]); v3f(tp[7][7]);
n3f(tn[6][8]); v3f(tp[6][8]);
n3f(tn[7][8]); v3f(tp[7][8]);
n3f(tn[6][9]); v3f(tp[6][9]);
n3f(tn[7][9]); v3f(tp[7][9]);
n3f(tn[6][10]); v3f(tp[6][10]);
n3f(tn[7][10]); v3f(tp[7][10]);
n3f(tn[6][11]); v3f(tp[6][11]);
n3f(tn[7][11]); v3f(tp[7][11]);
n3f(tn[6][12]); v3f(tp[6][12]);
n3f(tn[7][12]); v3f(tp[7][12]);
n3f(tn[6][13]); v3f(tp[6][13]);
n3f(tn[7][13]); v3f(tp[7][13]);
n3f(tn[6][14]); v3f(tp[6][14]);
n3f(tn[7][14]); v3f(tp[7][14]);
n3f(tn[6][15]); v3f(tp[6][15]);
n3f(tn[7][15]); v3f(tp[7][15]);
n3f(tn[6][16]); v3f(tp[6][16]);
n3f(tn[7][16]); v3f(tp[7][16]);
n3f(tn[6][17]); v3f(tp[6][17]);
n3f(tn[7][17]); v3f(tp[7][17]);
n3f(tn[6][18]); v3f(tp[6][18]);
n3f(tn[7][18]); v3f(tp[7][18]);
n3f(tn[6][19]); v3f(tp[6][19]);
n3f(tn[7][19]); v3f(tp[7][19]);
n3f(tn[6][20]); v3f(tp[6][20]);
n3f(tn[7][20]); v3f(tp[7][20]);
endtmesh();
bgntmesh();
n3f(tn[7][0]); v3f(tp[7][0]);
n3f(tn[8][0]); v3f(tp[8][0]);
n3f(tn[7][1]); v3f(tp[7][1]);
n3f(tn[8][1]); v3f(tp[8][1]);
n3f(tn[7][2]); v3f(tp[7][2]);
n3f(tn[8][2]); v3f(tp[8][2]);
n3f(tn[7][3]); v3f(tp[7][3]);
n3f(tn[8][3]); v3f(tp[8][3]);
n3f(tn[7][4]); v3f(tp[7][4]);
n3f(tn[8][4]); v3f(tp[8][4]);
n3f(tn[7][5]); v3f(tp[7][5]);
n3f(tn[8][5]); v3f(tp[8][5]);
n3f(tn[7][6]); v3f(tp[7][6]);
n3f(tn[8][6]); v3f(tp[8][6]);
n3f(tn[7][7]); v3f(tp[7][7]);
n3f(tn[8][7]); v3f(tp[8][7]);
n3f(tn[7][8]); v3f(tp[7][8]);
n3f(tn[8][8]); v3f(tp[8][8]);
n3f(tn[7][9]); v3f(tp[7][9]);
n3f(tn[8][9]); v3f(tp[8][9]);
n3f(tn[7][10]); v3f(tp[7][10]);
n3f(tn[8][10]); v3f(tp[8][10]);
n3f(tn[7][11]); v3f(tp[7][11]);
n3f(tn[8][11]); v3f(tp[8][11]);
n3f(tn[7][12]); v3f(tp[7][12]);
n3f(tn[8][12]); v3f(tp[8][12]);
n3f(tn[7][13]); v3f(tp[7][13]);
n3f(tn[8][13]); v3f(tp[8][13]);
n3f(tn[7][14]); v3f(tp[7][14]);
n3f(tn[8][14]); v3f(tp[8][14]);
n3f(tn[7][15]); v3f(tp[7][15]);
n3f(tn[8][15]); v3f(tp[8][15]);
n3f(tn[7][16]); v3f(tp[7][16]);
n3f(tn[8][16]); v3f(tp[8][16]);
n3f(tn[7][17]); v3f(tp[7][17]);
n3f(tn[8][17]); v3f(tp[8][17]);
n3f(tn[7][18]); v3f(tp[7][18]);
n3f(tn[8][18]); v3f(tp[8][18]);
n3f(tn[7][19]); v3f(tp[7][19]);
n3f(tn[8][19]); v3f(tp[8][19]);
n3f(tn[7][20]); v3f(tp[7][20]);
n3f(tn[8][20]); v3f(tp[8][20]);
endtmesh();
bgntmesh();
n3f(tn[8][0]); v3f(tp[8][0]);
n3f(tn[9][0]); v3f(tp[9][0]);
n3f(tn[8][1]); v3f(tp[8][1]);
n3f(tn[9][1]); v3f(tp[9][1]);
n3f(tn[8][2]); v3f(tp[8][2]);
n3f(tn[9][2]); v3f(tp[9][2]);
n3f(tn[8][3]); v3f(tp[8][3]);
n3f(tn[9][3]); v3f(tp[9][3]);
n3f(tn[8][4]); v3f(tp[8][4]);
n3f(tn[9][4]); v3f(tp[9][4]);
n3f(tn[8][5]); v3f(tp[8][5]);
n3f(tn[9][5]); v3f(tp[9][5]);
n3f(tn[8][6]); v3f(tp[8][6]);
n3f(tn[9][6]); v3f(tp[9][6]);
n3f(tn[8][7]); v3f(tp[8][7]);
n3f(tn[9][7]); v3f(tp[9][7]);
n3f(tn[8][8]); v3f(tp[8][8]);
n3f(tn[9][8]); v3f(tp[9][8]);
n3f(tn[8][9]); v3f(tp[8][9]);
n3f(tn[9][9]); v3f(tp[9][9]);
n3f(tn[8][10]); v3f(tp[8][10]);
n3f(tn[9][10]); v3f(tp[9][10]);
n3f(tn[8][11]); v3f(tp[8][11]);
n3f(tn[9][11]); v3f(tp[9][11]);
n3f(tn[8][12]); v3f(tp[8][12]);
n3f(tn[9][12]); v3f(tp[9][12]);
n3f(tn[8][13]); v3f(tp[8][13]);
n3f(tn[9][13]); v3f(tp[9][13]);
n3f(tn[8][14]); v3f(tp[8][14]);
n3f(tn[9][14]); v3f(tp[9][14]);
n3f(tn[8][15]); v3f(tp[8][15]);
n3f(tn[9][15]); v3f(tp[9][15]);
n3f(tn[8][16]); v3f(tp[8][16]);
n3f(tn[9][16]); v3f(tp[9][16]);
n3f(tn[8][17]); v3f(tp[8][17]);
n3f(tn[9][17]); v3f(tp[9][17]);
n3f(tn[8][18]); v3f(tp[8][18]);
n3f(tn[9][18]); v3f(tp[9][18]);
n3f(tn[8][19]); v3f(tp[8][19]);
n3f(tn[9][19]); v3f(tp[9][19]);
n3f(tn[8][20]); v3f(tp[8][20]);
n3f(tn[9][20]); v3f(tp[9][20]);
endtmesh();
bgntmesh();
n3f(tn[9][0]); v3f(tp[9][0]);
n3f(tn[10][0]); v3f(tp[10][0]);
n3f(tn[9][1]); v3f(tp[9][1]);
n3f(tn[10][1]); v3f(tp[10][1]);
n3f(tn[9][2]); v3f(tp[9][2]);
n3f(tn[10][2]); v3f(tp[10][2]);
n3f(tn[9][3]); v3f(tp[9][3]);
n3f(tn[10][3]); v3f(tp[10][3]);
n3f(tn[9][4]); v3f(tp[9][4]);
n3f(tn[10][4]); v3f(tp[10][4]);
n3f(tn[9][5]); v3f(tp[9][5]);
n3f(tn[10][5]); v3f(tp[10][5]);
n3f(tn[9][6]); v3f(tp[9][6]);
n3f(tn[10][6]); v3f(tp[10][6]);
n3f(tn[9][7]); v3f(tp[9][7]);
n3f(tn[10][7]); v3f(tp[10][7]);
n3f(tn[9][8]); v3f(tp[9][8]);
n3f(tn[10][8]); v3f(tp[10][8]);
n3f(tn[9][9]); v3f(tp[9][9]);
n3f(tn[10][9]); v3f(tp[10][9]);
n3f(tn[9][10]); v3f(tp[9][10]);
n3f(tn[10][10]); v3f(tp[10][10]);
n3f(tn[9][11]); v3f(tp[9][11]);
n3f(tn[10][11]); v3f(tp[10][11]);
n3f(tn[9][12]); v3f(tp[9][12]);
n3f(tn[10][12]); v3f(tp[10][12]);
n3f(tn[9][13]); v3f(tp[9][13]);
n3f(tn[10][13]); v3f(tp[10][13]);
n3f(tn[9][14]); v3f(tp[9][14]);
n3f(tn[10][14]); v3f(tp[10][14]);
n3f(tn[9][15]); v3f(tp[9][15]);
n3f(tn[10][15]); v3f(tp[10][15]);
n3f(tn[9][16]); v3f(tp[9][16]);
n3f(tn[10][16]); v3f(tp[10][16]);
n3f(tn[9][17]); v3f(tp[9][17]);
n3f(tn[10][17]); v3f(tp[10][17]);
n3f(tn[9][18]); v3f(tp[9][18]);
n3f(tn[10][18]); v3f(tp[10][18]);
n3f(tn[9][19]); v3f(tp[9][19]);
n3f(tn[10][19]); v3f(tp[10][19]);
n3f(tn[9][20]); v3f(tp[9][20]);
n3f(tn[10][20]); v3f(tp[10][20]);
endtmesh();
bgntmesh();
n3f(tn[10][0]); v3f(tp[10][0]);
n3f(tn[11][0]); v3f(tp[11][0]);
n3f(tn[10][1]); v3f(tp[10][1]);
n3f(tn[11][1]); v3f(tp[11][1]);
n3f(tn[10][2]); v3f(tp[10][2]);
n3f(tn[11][2]); v3f(tp[11][2]);
n3f(tn[10][3]); v3f(tp[10][3]);
n3f(tn[11][3]); v3f(tp[11][3]);
n3f(tn[10][4]); v3f(tp[10][4]);
n3f(tn[11][4]); v3f(tp[11][4]);
n3f(tn[10][5]); v3f(tp[10][5]);
n3f(tn[11][5]); v3f(tp[11][5]);
n3f(tn[10][6]); v3f(tp[10][6]);
n3f(tn[11][6]); v3f(tp[11][6]);
n3f(tn[10][7]); v3f(tp[10][7]);
n3f(tn[11][7]); v3f(tp[11][7]);
n3f(tn[10][8]); v3f(tp[10][8]);
n3f(tn[11][8]); v3f(tp[11][8]);
n3f(tn[10][9]); v3f(tp[10][9]);
n3f(tn[11][9]); v3f(tp[11][9]);
n3f(tn[10][10]); v3f(tp[10][10]);
n3f(tn[11][10]); v3f(tp[11][10]);
n3f(tn[10][11]); v3f(tp[10][11]);
n3f(tn[11][11]); v3f(tp[11][11]);
n3f(tn[10][12]); v3f(tp[10][12]);
n3f(tn[11][12]); v3f(tp[11][12]);
n3f(tn[10][13]); v3f(tp[10][13]);
n3f(tn[11][13]); v3f(tp[11][13]);
n3f(tn[10][14]); v3f(tp[10][14]);
n3f(tn[11][14]); v3f(tp[11][14]);
n3f(tn[10][15]); v3f(tp[10][15]);
n3f(tn[11][15]); v3f(tp[11][15]);
n3f(tn[10][16]); v3f(tp[10][16]);
n3f(tn[11][16]); v3f(tp[11][16]);
n3f(tn[10][17]); v3f(tp[10][17]);
n3f(tn[11][17]); v3f(tp[11][17]);
n3f(tn[10][18]); v3f(tp[10][18]);
n3f(tn[11][18]); v3f(tp[11][18]);
n3f(tn[10][19]); v3f(tp[10][19]);
n3f(tn[11][19]); v3f(tp[11][19]);
n3f(tn[10][20]); v3f(tp[10][20]);
n3f(tn[11][20]); v3f(tp[11][20]);
endtmesh();
}
draw_holder() {
lmbind(MATERIAL, MAT_HOLDER_RINGS);
pushmatrix();
draw_base();
translate(0.0, 0.0, 20.000000);
draw_torus();
translate(0.0, 0.0, 5.000000);
draw_torus();
translate(0.0, 0.0, 5.000000);
draw_torus();
popmatrix();
}